/*
 * HttpRequest.h
 *
 */

#ifndef HTTPREQUEST_H_
#define HTTPREQUEST_H_

#include "HttpMessage.h"
#include "HttpHost.h"
#include <string>

class HttpRequest : public HttpMessage {
	private:
		std::string uri;
		std::string protocolVersion;
	public:
		/**
		 * Crea un request asociado al uri y a la versión del protocolo
		 */
		HttpRequest(const std::string& uri, const std::string& protocVer);

		virtual ~HttpRequest();

		/**
		 * Devuelve el uri del request
		 */
		const std::string& getUri() const;

		/**
		 * Obliga a los herederos a devolver el nombre del método.
		 */
		virtual const std::string& getMethod() const = 0;

		/**
		 * Devuelve el request Line del request
		 */
		std::string getRequestLine() const;

		static const std::string GET;
		static const std::string POST;
};

#endif /* HTTPREQUEST_H_ */
